home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / hexer / mpth_17.exe / {app} / scripts / Structure Viewer / fat16.mps < prev    next >
Text File  |  2006-03-19  |  4KB  |  144 lines

  1. option title, "FAT16 Boot structure"
  2. =
  3. =
  4. =    Tiny Hexer script for FAT16 structure view in
  5. =    mirkes.de's tiny hex editor
  6. =
  7. =    I borrowed heavily from the built-in .BMP viewer
  8. =
  9. =    02-07-05 Bill Blankenship
  10. =
  11.  
  12.  
  13. option GlobalVars, 1
  14. option ReadTags, 1
  15. option target, structureviewer
  16.  
  17. = open active editor and goto current position/0
  18. var editor file
  19. editor = fileopen('::current')
  20. if ((param_count > 0) and (dword(params(0))==1))
  21.   fileseek editor, 0
  22. else
  23.   fileseek editor, filegetprop(editor, 'selstart')
  24. endif
  25. var start dword
  26. start = filegetprop(editor, 'position')
  27.  
  28. = open browser window
  29. var browser file
  30. browser = fileopen('::browser', 'c')
  31.  
  32. filesetprop browser, 'accepttags', 1
  33. filewrite browser "<font color=",'"',"blue",'"',"><b><u>FAT16 Boot structure:</u></b></font>\n\n"
  34. filesetprop browser, 'accepttags', 0
  35.  
  36. filewrite browser "Position: ",start,"\n\n"
  37.  
  38. = read the JMP instruction
  39. var JMP1 byte JMP2 byte NOP byte
  40. fileread editor JMP1  
  41. fileread editor JMP2
  42. fileread editor NOP
  43.  
  44. = print JMP Instruction
  45. filewrite browser "JMP instruction: \t\t'",JMP1," ",JMP2," ",NOP,"'\n"
  46.  
  47. var OEM text
  48. fileread editor OEM 8
  49. filewrite browser "OEM:  \t\t\t\t'",OEM,"'\n"
  50.  
  51. = Do BIOS Parameter block
  52. var bytespersect word sectpercluster byte reservedsect word numfats byte
  53. var rootentries word smallsectors word mediatype byte sectperfat word
  54. var sectpertrack word numheads word hiddensect dword largesectors dword
  55. var disknum byte curhead byte signature byte volumesn dword volumelabel text sysid text
  56.  
  57. fileread editor bytespersect
  58. filewrite browser "Bytes per Sector: \t\t'",bytespersect,"' ("
  59. call TO_DEC @bytespersect
  60. filewrite browser " dec)\n"
  61.  
  62. fileread editor sectpercluster
  63. filewrite browser "Sectors per cluster: \t\t'",sectpercluster,"' ("
  64. call TO_DEC @sectpercluster
  65. filewrite browser " dec)\n"
  66.  
  67. fileread editor reservedsect
  68. filewrite browser "Reserved Sectors: \t\t'",reservedsect,"' ("
  69. call TO_DEC @reservedsect
  70. filewrite browser " dec)\n"
  71.  
  72. fileread editor numfats
  73. filewrite browser "Number of FATs: \t\t'",numfats,"'\n"
  74.  
  75. fileread editor rootentries
  76. filewrite browser "Max root entries: \t\t'",rootentries,"' ("
  77. call TO_DEC @rootentries
  78. filewrite browser " dec)\n"
  79.  
  80. fileread editor smallsectors
  81. filewrite browser "Small sectors: \t\t'",smallsectors,"' ("
  82. call TO_DEC @smallsectors
  83. filewrite browser " dec)\n"
  84.  
  85. fileread editor mediatype
  86. filewrite browser "Media type: \t\t\t'",mediatype,"'\n"
  87.  
  88. fileread editor sectperfat
  89. filewrite browser "Sectors per FAT: \t\t'",sectperfat,"' ("
  90. call TO_DEC @sectperfat
  91. filewrite browser " dec)\n"
  92.  
  93. fileread editor sectpertrack
  94. filewrite browser "Sectors per track: \t\t'",sectpertrack,"' ("
  95. call TO_DEC @sectpertrack
  96. filewrite browser " dec)\n"
  97.  
  98. fileread editor numheads
  99. filewrite browser "Number of heads: \t\t'",numheads,"' ("
  100. call TO_DEC @numheads
  101. filewrite browser " dec)\n"
  102.  
  103. fileread editor hiddensect
  104. filewrite browser "Hidden sectors: \t\t'",hiddensect,"' ("
  105. call TO_DEC @hiddensect
  106. filewrite browser " dec)\n"
  107.  
  108. fileread editor largesectors
  109. filewrite browser "Large sectors: \t\t'",largesectors,"' ("
  110. call TO_DEC @largesectors
  111. filewrite browser " dec)\n"
  112.  
  113. fileread editor disknum
  114. filewrite browser "Disk number: \t\t\t'",disknum,"'\n"
  115. fileread editor curhead
  116. filewrite browser "Current head (not used): \t'",curhead,"'\n"
  117. fileread editor signature
  118. filewrite browser "NT signature: \t\t\t'",signature,"' ("
  119. call TO_DEC @signature
  120. filewrite browser " dec)\n"
  121.  
  122. fileread editor volumesn
  123. filewrite browser "Volume serial number: \t\t'",volumesn,"' ("
  124. call TO_DEC @volumesn
  125. filewrite browser " dec)\n"
  126.  
  127. fileread editor volumelabel 11
  128. filewrite browser "Volume label: \t\t\t'",volumelabel,"'\n"
  129. fileread editor sysid 8
  130. filewrite browser "System ID: \t\t\t'",sysid,"'\n"
  131. end
  132.  
  133. = decimal output - taken from BMP viewer
  134. @@TO_DEC
  135. number_radix = 10
  136. number_prefix = ''
  137. var _r1 varref
  138. pop _r1
  139. filewrite browser deref(_r1)
  140. number_prefix = '0x'
  141. number_radix = 16
  142. return
  143.  
  144.